<?php
session_start();


function motHasard($n)
{
    $voyelles = array('a', 'e', 'i', 'o', 'u', 'ou', 'io','ou','ai');
    $consonnes = array('b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm','n', 'p', 'r', 's', 't', 'v', 'w',
			'br','bl', 'cr','ch', 'dr', 'fr', 'dr', 'fr', 'fl', 'gr','gl','pr','pl','ps','st','tr','vr');
                            
    $mot = '';
    $nv = count($voyelles)-1;
    $nc = count($consonnes)-1;
	for($i = 0; $i < round($n/2); ++$i)
	{
		$mot .= $voyelles[mt_rand(0,$nv)];
		$mot .= $consonnes[mt_rand(0,$nc)];
	}
	
	return substr($mot,0,$n); // Comme certaines syllabes font plus d'un caract�re, on est oblig� de couper pour avoir le nombre exact de caract�res.
}


function image($mot)
{
	$size = 40;
	$marge = $size/4;
	$font = './SMARC___.TTF';
	// /*
	// $mot="LjgAZGgyY";
	
	$box = imagettfbbox($size, 0, './SMARC___.TTF', $mot);
	$largeur = $box[2] - $box[0];
	$hauteur = $box[1] - $box[7];
	$largeur_lettre = round($largeur/strlen($mot));

	
	$img = imagecreate($largeur*1.3+$marge*2, $hauteur+$marge*2);
    $blanc = imagecolorallocate($img, 255, 255, 255); 
    
   for($i = 0; $i < strlen($mot);++$i)
	{
		$l = $mot[$i];
		$angle = mt_rand(-35,35);
		imagettftext($img,$size,$angle,($i*$largeur_lettre*1.3)+$marge, $hauteur+mt_rand(0,$marge/2),
		imagecolorallocate($img, mt_rand(15, 90), mt_rand(2, 50), mt_rand(10, 40)), $font, $l);	
	}
	
	for($i=0; $i< $size; $i+= 20)
	{
		imageline($img, 2,mt_rand(2*$marge,$hauteur+ $marge), $largeur + $marge,
		mt_rand(2*$marge,$hauteur+$marge), imagecolorallocate($img, mt_rand(30, 230), mt_rand(30, 200), mt_rand(30, 200)));	// barre al�atoire
	}
	imageline($img, 2, $hauteur*2/3 , $largeur+20 , $hauteur+$marge, imagecolorallocate($img, mt_rand(30, 150), mt_rand(30, 150), mt_rand(30, 150)));
    
	$matrix_blur = array(
		array(1,2,1),
		array(2,4,2),
		array(1,2,1));
	imageconvolution($img, $matrix_blur,16,0); // On applique la matrice, avec un diviseur 16
	// imageconvolution($img, $matrix_blur,16,0); // On applique la matrice, avec un diviseur 16
	
	
    imagepng($img);
    imagedestroy($img);
// */
}


function captchaMot($taille)
{
	if($taille < 2)
		$taille=2;
		
	$mot = motHasard($taille);
    $_SESSION['captcha'] = $mot;
    image($mot);
}


header("Content-type: image/png");
if(isset($_SESSION['taille_captcha']) AND is_numeric ($_SESSION['taille_captcha'])
 AND $_SESSION['taille_captcha'] > 1 )
	captchaMot($_SESSION['taille_captcha']);
else
	captchaMot(5);


?>